package com.zlm.user.emp.dao;

import com.zlm.common.base.BaseDao;
import com.zlm.common.dto.HxUserDto;
import com.zlm.common.dto.userEmp.EmpInfoParamsDto;
import com.zlm.user.emp.entity.SysEmpDO;
import com.zlm.common.dto.userEmp.SysEmpDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author: duyufu
 * @Date: 2019/3/29 11:16
 */
@Repository
public interface SysEmpDao extends BaseDao<SysEmpDO> {
    /**
     * 获取用户基本信息
     * @param mobile
     * @param password
     * @return
     */
    SysEmpDto queryEmpByMobileAndPassword(@Param("mobile") String mobile, @Param("password") String password);

    /**
     * 是否存在当前用户
     * @param mobile
     * @return
     */
    int isExistEmp(@Param("mobile") String mobile);

    /**
     * 查询用户列表
     * @param map
     * @return
     */
    List<SysEmpDto> queryEmp(Map<String, Object> map);

    /**
     * 根据手机号修改密码
     * @param map
     * @return
     */
    int updatePassword(Map<String, Object> map);

    /**
     * 新增用户返回主键
     * @param user
     * @return
     */
    Integer insertEmp(SysEmpDO user);

    /**
     * 根据openid查询用户
     * @param emp
     * @return
     */
    SysEmpDto selectEmp(SysEmpDO emp);

    /**
     * 绑定手机号
     * @param emp
     * @return
     */
    int bindMobile(SysEmpDO emp);

    /**
     * 删除用户
     * @param emp
     * @return
     */
    int deleteEmp(SysEmpDO emp);

    /**
     * 查询用户
     * @param empId
     * @return
     */
    SysEmpDto queryEmpById(@Param("empId") Integer empId);

    /**
     * 保存用户信息
     * @param empInfoParamsDto
     */
    void saveEmpInfo(EmpInfoParamsDto empInfoParamsDto);

    /**
     * 获取用户密码
     * @param empId
     * @return
     */
    String queryEmpPassword(@Param("empId") Integer empId);

    /**
     * 修改密码
     * @param empId
     * @param password
     */
    void updatePasswordByEmpId(@Param("empId") Integer empId,@Param("password") String password);

    /**
     * 腾讯系绑定手机号
     * @param emp
     */
    void tencentBindMobile(SysEmpDO emp);

    /**
     * 查询用户
     * @param idNo
     * @return
     */
    SysEmpDO queryEmpByIdNo(@Param("idNo")String idNo);

    /**
     * 根据身份证号查询用户数量
     * @param idNo
     * @return
     */
    int countEmpByIdNo(@Param("idNo") String idNo);

    /**
     * 更新环信密码
     * @param empId
     * @param hxPassword
     */
    void updateHxPasswordByEmpId(@Param("empId") Integer empId,
                                 @Param("hxID") String hxID, @Param("hxPassword") String hxPassword);

    /**
     * 搜索好友
     * @param keyword
     * @return
     */
    List<HxUserDto> searchFriend(@Param("keyword") String keyword);

    /**
     * 根据环信Id查询用户
     * @param hxId
     * @return
     */
    HxUserDto queryHxUser(@Param("hxId") String hxId);

    /**
     * 附近人才数量
     * @param city
     * @return
     */
    Integer queryCountLocalEmp(@Param("city") String city);

    /**
     * 查看附近人才
     * @param pageNumber
     * @param pageSize
     * @param city
     * @return
     */
    List<SysEmpDto> queryLocalEmp(@Param("pageNumber") Integer pageNumber,@Param("pageSize") Integer pageSize,@Param("city") String city);
}
